"""
AI 模块的标准响应模型
"""
from typing import Optional, List
from axiom_boot.api.models import ApiModel
from .message_model import AxiomMessage


class UsageMetadata(ApiModel):
    """
    封装了 LLM 调用过程中的 token 使用量信息。
    """
    prompt_tokens: int
    completion_tokens: int
    total_tokens: int


class AxiomResponse(ApiModel):
    """
    对非流式 LLM 调用的标准响应封装。
    
    它将 LLM 的回复消息与调用过程中的元数据（如 token 使用量）包装在一起。
    """
    message: AxiomMessage
    usage: Optional[UsageMetadata] = None 